package com.industrial.app.mapper;

import com.industrial.app.domain.BizManufacturingPmiComparison;
import com.industrial.app.domain.formal.BizManufacturingPmiComparisonFormal;
import com.industrial.app.domain.request.BizManufacturingPmiComparisonRequest;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 山东与全国制造业采购经理指数对比正式Mapper接口
 *
 * @author SangGuangCan
 * @date 2024-01-02
 */
public interface BizManufacturingPmiComparisonFormalMapper
{
    /**
     * 查询山东与全国制造业采购经理指数对比正式
     *
     * @param baseId 山东与全国制造业采购经理指数对比正式主键
     * @return 山东与全国制造业采购经理指数对比正式
     */
    public BizManufacturingPmiComparisonFormal selectBizManufacturingPmiComparisonFormalByBaseId(String baseId);

    /**
     * 查询山东与全国制造业采购经理指数对比正式列表
     *
     * @param bizManufacturingPmiComparisonFormal 山东与全国制造业采购经理指数对比正式
     * @return 山东与全国制造业采购经理指数对比正式集合
     */
    public List<BizManufacturingPmiComparisonFormal> selectBizManufacturingPmiComparisonFormalList(BizManufacturingPmiComparisonFormal bizManufacturingPmiComparisonFormal);

    /**
     * 新增山东与全国制造业采购经理指数对比正式
     *
     * @param bizManufacturingPmiComparisonFormal 山东与全国制造业采购经理指数对比正式
     * @return 结果
     */
    public int insertBizManufacturingPmiComparisonFormal(BizManufacturingPmiComparisonFormal bizManufacturingPmiComparisonFormal);

    /**
     * 修改山东与全国制造业采购经理指数对比正式
     *
     * @param bizManufacturingPmiComparisonFormal 山东与全国制造业采购经理指数对比正式
     * @return 结果
     */
    public int updateBizManufacturingPmiComparisonFormal(BizManufacturingPmiComparisonFormal bizManufacturingPmiComparisonFormal);

    /**
     * 删除山东与全国制造业采购经理指数对比正式
     *
     * @param baseId 山东与全国制造业采购经理指数对比正式主键
     * @return 结果
     */
    public int deleteBizManufacturingPmiComparisonFormalByBaseId(String baseId);

    /**
     * 批量删除山东与全国制造业采购经理指数对比正式
     *
     * @param baseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizManufacturingPmiComparisonFormalByBaseIds(String[] baseIds);


    /**
     * 批量删除山东与全国制造业采购经理指数对比
     *
     * @param baseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizManufacturingPmiComparisonByBaseIds(String[] baseIds);

    /**
     * 批量导入山东与全国制造业采购经理指数对比
     * @param list 山东与全国制造业采购经理指数对比的数据
     */
    void batchInsertManufacturingPmiCompariso(@Param("list") List<BizManufacturingPmiComparison> list);

    /**
     * <p>
     * 查询数据库中数据的日期(year_month字段)并进行去重复操作<br/>
     * 主要用于的是APP端左上角的日期过滤
     * </p>
     *
     * @return 日期的集合
     */
    List<String> getUniqueDatesFromDatabase();


    /**
     * 查询当前月份到上一年月份的数据
     * @param bizManufacturingPmiComparisonRequest
     * @return
     */
    List<BizManufacturingPmiComparisonFormal> getDataOneYearBeforeSpecificDate(@Param("p") BizManufacturingPmiComparisonRequest bizManufacturingPmiComparisonRequest);

}
